home *** CD-ROM | disk | FTP | other *** search
- /* capture.c 05-Apr-96 */
-
- /****************************************************************
- * (C)opyright (C) 1993,1996 Martin Stover, Marburg, Germany *
- ****************************************************************/
-
- #include "net.h"
-
- static int usage(void)
- {
- fprintf(stderr, "usage:\t%s level\n", funcname);
- fprintf(stderr, "\tlevel=0 .. 99\n" );
- return(-1);
- }
-
- static int parse_argv(uint8 *devname, uint8 *queuename,
- int argc, char *argv[], int parsemode)
- {
- int k = 0;
- *devname = '\0';
- *queuename = '\0';
- while (++k < argc) {
- uint8 *p = argv[k];
- if (k == 1) {
- strmaxcpy(devname, p, 20);
- upstr(devname);
- if (!strcmp(devname, "PRN"))
- strcpy(devname, "LPT1");
- } else if (k == 2) {
- strmaxcpy(queuename, p, 20);
- upstr(queuename);
- }
- }
- return(0);
- }
-
- static int do_capture(uint8 *drvstr, uint8 *queuestr, int delete)
- {
- int result = redir_device_drive(delete ? -1 : 0x3, drvstr, queuestr);
- return(result);
- }
-
- static int show_capture(uint8 *drvstr)
- {
- int result;
- int k =-1;
- uint8 devname[20];
- uint8 remotename[130];
- int devicetyp;
- while ((result = list_redir(++k, &devicetyp, devname, remotename)) > -1){
- if (result > -1 && devicetyp == 0x3) {
- upstr(devname);
- upstr(remotename);
- if (!drvstr || !*drvstr || !strcmp(devname, drvstr))
- fprintf(stdout, "%-10s captured to %s\n", devname, remotename);
- }
- }
- return(result);
- }
-
- int func_capture(int argc, char *argv[], int mode)
- {
- uint8 devname [22];
- uint8 queuestr[22];
- if (!parse_argv(devname, queuestr, argc, argv, mode)) {
- int result=0;
- if (*queuestr || mode == 1) {
- result=do_capture(devname, queuestr, mode);
- if (result< 0)
- fprintf(stderr, "capture error:%d, device:%s \n", result, devname);
- }
- if (mode != 1)
- show_capture(devname);
- else if (result > -1)
- fprintf(stdout, "Capture of %s removed\n", devname);
- return(result);
- }
- return(1);
- }
-
-